package com.five.api.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.five.entity.Article;
import com.five.entity.qo.ArticleQo;
import com.five.qo.ArticleCommentQO;

import java.util.List;
import com.five.entity.qo.UsersAndArticles;

import java.util.List;

/**
 * <p>
 * 博客文章表 服务类
 * </p>
 *
 * @author star
 * @since 2021-06-16
 */
public interface ArticleService extends IService<Article> {

    /**
     * 根据用户id查询文章
     * @param userId 用户id
     * @return 文章列表
     */
    List<ArticleCommentQO> selectArticleByUserId(Long userId);

    List<Article> selectArticleList();

    /**
     *  分页展示文章
     * @return
     */
    List selectArticleByPage(Long page, ArticleQo articleQo);

    UsersAndArticles selectArticleToSum();

    /**
     * 获取文章详情
     * @param id
     * @return
     */
    Article getArticleDetail(Long id);

    /**
     * 添加文章
     * @param article   文章对象
     * @param labels    标签列表
     * @return  sql执行条数
     */
    Long addArticle(Article article, String labels);

    /**
     *
     * @param article
     * @param isAddCount true 则增加数量，false 则减少数量
     * @return
     */
    int updateArticle(Article article,boolean isAddCount);

    /**
     * 根据id删除文章
     * @param id 文章id
     * @return 1-成功 0-否
     */
    int deleteArticle(Long id);


    /**
     * 修改文章详细信息
     * @param article 文章对象
     * @return 1-成功 0-失败
     */
    int updateArticleDetail(ArticleQo article , String labels);

}
